﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Npgsql;

namespace Golfvision2020
{
    public partial class Topplistor : Form
    {
        public Tävlingar Tävling;

        public Topplistor(Tävlingar tävling)
        {
            Tävling = tävling;
            InitializeComponent();

            TävlingCombobox.ValueMember = "_Id";
            TävlingCombobox.DisplayMember = "_Namn";
            TävlingCombobox.DataSource = tävling.tävlingar;
            KlassCombobox.SelectedIndex = 0;
            GetDeltagareFromTävling();
        }

        

        private void GetDeltagareFromTävling()
        {
            Topplista.Items.Clear();
            String sql = String.Format(
                   @"SELECT spelare.golf_id,spelare.first_name,spelare.last_name,spelare.handicap,tavlanden.resultat
                FROM spelare,tavlanden 
                WHERE tavlanden.golf_id=spelare.golf_id 
                AND tavlanden.tavlings_id={0}
                AND tavlanden.klass_id={1}
                AND tavlanden.resultat>0
                ORDER BY tavlanden.resultat ASC;",
                TävlingCombobox.SelectedValue, KlassCombobox.SelectedIndex);

            NpgsqlCommand command = new NpgsqlCommand(sql, Tävling.Klubben.conn);
            NpgsqlDataReader dr = command.ExecuteReader();
            int placering = 1;
            while (dr.Read()) //En loop som rad för rad läser innehållet i datareader'n
            {
                ListViewItem tävlanden = new ListViewItem(placering.ToString());
                tävlanden.SubItems.Add(dr["golf_id"].ToString());
                tävlanden.SubItems.Add(dr["first_name"].ToString());
                tävlanden.SubItems.Add(dr["last_name"].ToString());
                tävlanden.SubItems.Add(dr["handicap"].ToString());
                tävlanden.SubItems.Add(dr["resultat"].ToString());

                if (placering == 1)
                    tävlanden.BackColor = System.Drawing.Color.Gold;

                if (placering == 2)
                    tävlanden.BackColor = System.Drawing.Color.Silver;

                if (placering == 3)
                    tävlanden.BackColor = System.Drawing.Color.LightCoral;


                Topplista.Items.Add(tävlanden);
                placering++;
            }
            dr.Close();
        }

        private void TävlingCombobox_SelectedIndexChanged(object sender, EventArgs e)
        {
            GetDeltagareFromTävling();

        }

        private void KlassCombobox_SelectedIndexChanged(object sender, EventArgs e)
        {
            GetDeltagareFromTävling();
        }
    }
}
